package com.nuc.bigdata.app.service;

import com.nuc.bigdata.domain.vo.ShopCarVO;
import com.nuc.bigdata.feign.dto.ShopCarGoodsDto;

/**
 * @author JackLuo
 * @date 2019/12/5
 */
public interface ShopCarService {

    /**
     * 根据用户唯一标识获取购物车信息
     * @param userId 用户唯一标识
     * @return 购物车feign实体对象
     */
    ShopCarVO queryCarFeignByUserId(String userId);

    /**
     * 添加单种商品到购物车
     * @param goodsDto 商品dto对象的
     * @param userId 用户唯一标志
     */
    void addGoodsIntoCar(ShopCarGoodsDto goodsDto, String userId);

    /**
     * 移除一种商品
     * @param commodityId 商品唯一标识
     * @param userId 用户唯一标识
     */
    void removeGoodsFromCar(String commodityId,String userId);

    /**
     * 更新购物车中商品数量
     * @param commodityId 商品唯一标识
     * @param userId 用户唯一标识
     * @param quantity 数量
     */
    void updateGoodsInCar(String commodityId, String userId, Long quantity);

    /**
     * 更新购物车中商品是否被选中
     * @param commodityId 商品唯一标识
     * @param userId 用户唯一标识
     * @param selected 是否被选中
     */
    void updateGoodsSelectedCar(String commodityId, String userId, Boolean selected) ;
}
